﻿using Summer.IO;

#region License
/*
 *  Copyright (c) Dumuzi.cn 2009 , All rights reserved.
 *  CLR Version: 2.0.50727.4927
 *  NameSpace: Summer.Core.Config
 *  Author:Edwin Tai,戴佳顺
 *  Msn:edwin19861218@hotmail.com
 *  QQ: 1961218
 *  Date:2009/10/29 12:46:40
 *  Licensed under the Microsoft Public License (Ms-PL)
 *  This license governs use of the accompanying software. 
 *  If you use the software, you accept this license.
 *  If you do not accept the license, do not use the software.
 */
#endregion


namespace Summer.Core.Config
{
    /// <summary>
    /// Configuration interface to get config data or format it
    /// </summary>
    /// <typeparam name="T"></typeparam>
    public interface IConfiguration<T> where T : IParseableFile
    {
        /// <summary>
        /// Load config file to special type and format it
        /// </summary>
        /// <param name="aspectXml"></param>
        /// <returns></returns>
        T GetConfigFile(string configXml);
        /// <summary>
        /// Load config files to specal type and format it
        /// </summary>
        /// <param name="configXmls"></param>
        /// <returns></returns>
        T GetConfigFiles(string[] configXmls);
        /// <summary>
        /// Load config files to specal type
        /// </summary>
        /// <param name="configXml"></param>
        /// <returns></returns>
        T LoadConfigFile(string configXml);
    }
}
